package com.itheima.service.db.impl;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.itheima.domain.db.QuestionnaireReport;
import com.itheima.mapper.QuestionnaireReportMapper;
import com.itheima.service.db.QuestionnaireReportService;
import org.apache.dubbo.config.annotation.Service;
import org.springframework.beans.factory.annotation.Autowired;

import java.util.List;


@Service
public class QuestionnaireReportServiceImpl implements QuestionnaireReportService {

    @Autowired
    private QuestionnaireReportMapper questionnaireReportMapper;

    //查看是否有报告
    @Override
    public QuestionnaireReport findByUserId(Long id, Long userId) {
        QueryWrapper<QuestionnaireReport> wrapper = new QueryWrapper<>();
        wrapper.eq("user_id", id);
        wrapper.eq("questionnaire_id", userId);
        QuestionnaireReport questionnaireReport = questionnaireReportMapper.selectOne(wrapper);
        return questionnaireReport;
    }

    //保存报告
    @Override
    public Long save(QuestionnaireReport questionnaireReport) {
        QueryWrapper<QuestionnaireReport> wrapper = new QueryWrapper<>();
        wrapper.eq("user_id", questionnaireReport.getUserId());
        wrapper.eq("questionnaire_id", questionnaireReport.getQuestionnaireId());
        QuestionnaireReport questionnaireReport1 = questionnaireReportMapper.selectOne(wrapper);
        if (questionnaireReport1 == null) {
            questionnaireReportMapper.insert(questionnaireReport);
            QuestionnaireReport questionnaireReport2 = questionnaireReportMapper.selectOne(wrapper);
            return questionnaireReport2.getId();
        } else {
            questionnaireReport1.setRationality(questionnaireReport.getRationality());
            questionnaireReport1.setAbstraction(questionnaireReport.getAbstraction());
            questionnaireReport1.setJudgement(questionnaireReport.getJudgement());
            questionnaireReport1.setExtroversion(questionnaireReport.getExtroversion());
            questionnaireReport1.setResultId(questionnaireReport.getResultId());


           questionnaireReportMapper.update(questionnaireReport1,wrapper);
            QuestionnaireReport questionnaireReport2 = questionnaireReportMapper.selectOne(wrapper);
            return questionnaireReport2.getId();

        }
    }

    //按照结果id查
    @Override
    public List<QuestionnaireReport> findByResultId(Long resultId) {
        QueryWrapper<QuestionnaireReport> wrapper = new QueryWrapper<>();
        wrapper.eq("result_id", resultId);
        List<QuestionnaireReport> questionnaireReportList = questionnaireReportMapper.selectList(wrapper);
        return questionnaireReportList;
    }

    //通过id查
    @Override
    public QuestionnaireReport findById(Long id) {
        QuestionnaireReport questionnaireReport = questionnaireReportMapper.selectById(id);
        return questionnaireReport;
    }


}
